The present invention relates to a technology for allowing a plurality of computers connected to a network to share information among them, and more particularly, to an information sharing technology for a plurality of computers interconnected through a network to collaborate in a GUI (Graphical User Interface) environment.
Conventionally, collaboration by a plurality of computers on a network using a GUI environment is often implemented on a one-to-one basis, wherein a screen displayed on a first computer is also displayed on a screen of a second computer such that the two computers have a common view for observation and an input to the second computer through a keyboard or a mouse associated therewith is also sent to the first computer as an input thereto, thereby mutually sharing the same work environment. In the work environment shared by a plurality of computers, a common environment is set in a single server, which plays the role of the first computer, and a plurality of computers connected to the server play the role of the second computer. The conventional configuration as described above involves a lot of types and amount of data mutually communicated between computers, resulting in an increased burden on the network and a failure in improving the throughput on a low speed network. The conventional configuration is therefore unsatisfactory. In addition, since sharing is implemented after all by resources of one computer, its efficiency depends on the performance of the computer. Furthermore, the conventional configuration experiences difficulties in ensuring the security of data and therefore has a problem that resources other than authorized ones could be misappropriated. Also, sharing often extends entirely and thus fails to separately establish a shared environment and individual environments inherent to respective computers which participate in the sharing in a compatible manner.
As a means for solving the foregoing problems, an object oriented environment has been devised. Object oriented basic software, designed and developed by Professor Yuzuru Tanaka of the Graduate School of Engineering at Hokkaido University, has partially realized such an environment using a so-called “intelligent pad” (abbreviated as IP) which is capable of visual programming to associate objects with one another.
IP develops software through synthesis, decomposition, reuse of parts having functions called “pads” and also implements an operating environment for developed pads. A “pad” is a type of object which is comprised of a model part having a structure called a slot for holding the state of the pad itself, and a view part for exchanging a message with the model part, and behaves as a basic unit which encapsulates inherent data and method. Respective pads are configured to use the slot as a common interface among other pads so that they can mutually exchange data and messages. In a GUI environment, the pads may be pasted together or peeled off to visually manipulate synthesis and decomposition. Details of IP is published in a variety of documents and Intelligent Pad Consortium (IPC: Intelligent Pad Consortium at http://www.pads.or.jp/).
The home page of the IPC publicly shows the result of “Shared Space Piazza Developing Project.” This project realizes a shared field for intellectual properties distribution using the IP, wherein pads of the shared field are managed by a Piazza server through the Internet. The Piazza server keeps track of which pad has been pasted on the shared field pad, and the result of pasting or peeling by a user can be viewed by the other users who utilize the same shared field pad in completely the same state. Specifically, each time an event occurs on the shared field in which another pad is pasted or a pasted pad is peeled off, an event operator uploads the pad, which has been changed, to the server, while the other sharers download the changed pad from the server. These operations are repeated to allow a plurality of users to share objects which exist on the shared field. This does not constitute sharing of pad manipulation process but implements a function for users to paste pads that they desired to distribute to the shared field pad and mutually communicate among them.
In “Implementation of Collaborative Work Field in Synthetic Media System, Intelligent Pad,” written by Hiroshi Nagasaki, Yuzuru Tanaka, et al. and printed in Collection of Information processing Society of Japan, Vol. 34, No. 05 (May 1993), and, “Synthetic Media Architecture and Its Perspective” written by Yuzuru Tanaka and printed in Journal of the Institute of Electrical Engineers of Japan, Vol. 113, No. 6, 1993, a shared work environment is implemented by sharing manipulation events performed on pads by users. Sharing of a user manipulation event involves pasting a pad on a field pad, and distributing a shared copy of the synthesized pad to each client. In other words, a model part and a view part exist separately on different sites. When a user's request for manipulation is detected in any of shared copies (view part), the state of a model part shared by these copies (view part) is updated, and its value is conveyed to all the copies (view part). Each of the shared copies (view part) accepts a manipulation request upon receiving update propagation. An object for communication is automatically inserted between the model part and the view part for communicating a message. Also, a field pad is provided with a function of reproducing a received manipulation request on its own region.
However, according to the above-mentioned conventional IP-based sharing system, not all manipulation events are shared. An event is shared only as a result of generating an object, pasting an object or deleting an object within a shared region, or when a model is updated and as a result, an operation that propagates the same is performed.
Manipulation events to be shared exist at various levels. For example, when a pad on a shared field pad is clicked to open a popup menu, display a menu and start a manipulation, there is no way of knowing which item has been selected from the menu unless the mouse event and menu display are shared.
Also, when sharing an event of moving a certain object and pasting it to another object (the pasting object is called a “child object” and the object to be pasted is called a “parent object”), if the child object is absorbed into the parent object immediately after the former has completed pasting, the child object looks as if it has disappeared from the original location. Thus, despite the series of operations of selecting, moving and pasting, if these manipulation events are not shared among the sharers, those that share the field are misled to think that the object has been deleted.
When, for example, building an electronic remote learning (eLearning) application by using a shared function, it is critical for a plurality of pupils to exactly understand movements of objects by observing manipulations by a teacher. Specifically, if the manipulation events are not shared among the pupils and the teacher as described above, even if the teacher sets a goal of learning to indicate an object on the screen by a series of operations, that is, selecting, moving and pasting, the pupils will regard the operations as simple deletion of the object, so that the learning effectiveness is compromised. Therefore, in the case of the aforementioned example, sharing such as the IP-based shared field as described above is not sufficient. Further, assuming that there are a plurality of sharers, it is necessary to take into consideration simultaneous mouse manipulations on the same object by sharers, midway participation in a shared region and midway retirement from the shared region.